//
// Created by mongobaba on 2021/6/6.
//

#include "unit_test.h"
#include "json_validator.h"

// 特殊情况
TEST(parse_integer_empty) {
    json_validator validator("");
    ASSERT_EQ(false, validator.parse_integer());
    ASSERT_EQ(std::string(""), validator.left());
}

// 单一数字
TEST(parse_integer_only_zero) {
    json_validator validator("0x");
    ASSERT_EQ(true, validator.parse_integer());
    ASSERT_EQ(std::string("x"), validator.left());
}

// 0接其他数字
TEST(parse_integer_zero_with_more_numbers) {
    json_validator validator("012x");
    ASSERT_EQ(true, validator.parse_integer());
    ASSERT_EQ(std::string("12x"), validator.left());
}

// 非0开头数字
TEST(parse_integer_not_zero) {
    json_validator validator("1x");
    ASSERT_EQ(true, validator.parse_integer());
    ASSERT_EQ(std::string("x"), validator.left());
}

// 非0开头的多个数字
TEST(parse_integer_not_zero_with_more_numbers) {
    json_validator validator("12x");
    ASSERT_EQ(true, validator.parse_integer());
    ASSERT_EQ(std::string("x"), validator.left());
}

// 负数
TEST(parse_integer_negative) {
    json_validator validator("-12x");
    ASSERT_EQ(true, validator.parse_integer());
    ASSERT_EQ(std::string("x"), validator.left());
}
